%        File: caso_inizializzazione.tex
%     Created: gio giu 23 07:00  2011 C
% Last Change: gio giu 23 07:00  2011 C
%
\documentclass[italian,a4paper]{article}
\usepackage{babel}
\usepackage[text={6in,9in},centering]{geometry}
\usepackage[utf8x]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{ae,aecompl}
\frenchspacing
\pagestyle{plain}
\title{Schema dei passaggi principali}

\author{Paolo Pigato\\ Davide Poletti}
\begin{document}
\maketitle

\section*{Scelta delle opzioni}
\begin{enumerate}
    \item La classe Menu M chiede all'utente la dimensione della matrice e 
        il tipo dei giocatori (umano/cpu)
    \item M inizializza una struct (Classe?) opzioni che contiene dimensioni,
        tipo giocatori e altri eventuali parametri (da vedere)
    \item M inizializza un oggetto game manager GM, che gestisce la partita
    \item Chiusura del programma
\end{enumerate}

\section*{Gestione partita}
\begin{enumerate}
    \item GM Inizializza la partita
    \item bool Tocca1 = True;
    \item GM invoca un turno di partita; se Tocca1, GA=G1, GD=G2, altrimenti viceversa.
    \item A seconda di esito, GM setta Tocca1 e continua o esce dal ciclo dei turni.
    \item GM comunica il vincitore all'utente
\end{enumerate}


\section*{Inizializzazione della partita}
\begin{enumerate}
    \item Il game manager GM inizializza M1 e M2 mari della dimensione specificata in
        Opzioni, inizializza G1 e G2 giocatori del tipo specificato nelle
        opzioni, inizializza i due vector di navi N1 e N2.
    \item Il GM chiede a G1 tipo, posizione e orientamento di una nave.
    \item Il GM chiede a M1 se la nave può essere inserita come richiesto da
        G1
    \item M1 acconsente all'inserimento
    \item GM aggiunge la nave a N1 
    \item GM dice a M1 di aggiungere la nave (aggiorna le caselle occupate dalla nave
        aggiungendo un puntatore alla nave)  
\end{enumerate}

\section*{Turno di una partita}
\begin{enumerate}
    \item GM, in base a un parametro, decide chi sarà l'attaccante GA e il
        difensore GD
    \item GM chiede a GA le coordinate dello sparo
    \item GM Comunica a MD le coordiante dello sparo
    \item MD cambia lo stato ``sparo'' della casella corrispondente
    \item MD controlla se la casella corrispondente alle coordinate è
        associata a una nave
    \item In caso affermativo la nave corrispondente incrementa di un'unità il
        numero di colpi ricevuti.
    \item La nave controlla se il numero di colpi subiti è pari al numero di
        caselle occupate. In caso affermativo cambia il proprio stato in
        affondata.
    \item La nave comunica a MD se è stata affondata
    \item Il MD comunica a GM l'esito
\end{enumerate}

\end{document}


